home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1995-11-25 | 1.1 KB | 49 lines |
- IMPLEMENTATION MODULE JoyEvent;
-
- IMPORT XBIOS104;
- FROM SYSTEM IMPORT ADR,ADDRESS;
-
- CONST MoveA0 = 13E8H;
- RTS = 4E75H;
-
- TYPE RoutineRec = RECORD
- Opcode : CARDINAL;
- Offset : CARDINAL;
- Adresse : ADDRESS;
- Return : CARDINAL;
- END(*RECORD*);
-
- VAR Vector : XBIOS104.KBVectorPtr;
- Routine : RoutineRec;
- OldVec : ADDRESS;
- Wert : BITSET;
-
- PROCEDURE InitJoyEvent;
- BEGIN
- Routine.Opcode:=MoveA0;
- Routine.Offset :=2;
- Routine.Adresse:=ADR(Wert);
- Routine.Return:=RTS;
- Vector:=XBIOS104.KeyboardVectors();
- OldVec:=Vector^.joyvec;
- Vector^.joyvec:=ADR(Routine.Opcode);
- Wert:={};
- END InitJoyEvent;
-
- PROCEDURE Joystick(VAR Event: JoyEvents);
- BEGIN
- Event := NoEvents;
- IF 10 IN Wert THEN INCL(Event, Right);END(*IF*);
- IF 11 IN Wert THEN INCL(Event,Left);END(*IF*);
- IF 9 IN Wert THEN INCL(Event,Up);END(*IF*);
- IF 8 IN Wert THEN INCL(Event,Down);END(*IF*);
- END Joystick;
-
- PROCEDURE TermJoyEvent;
- BEGIN
- Vector:=XBIOS104.KeyboardVectors();
- Vector^.joyvec:=OldVec;
- END TermJoyEvent;
-
- END JoyEvent.
-